package com.example.md.mddemo.webspider;

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;

/**
 * Copyright © 2018年 mddemo. All rights reserved.
 *
 * @author 临江仙 hzqiuxm@163.com
 * 抓取Github信息的例子
 * @date 2019/1/2 17:18
 * @Since 1.0.0
 */
public class GithubRepoPageProcessor implements PageProcessor {
    /**
     * 抓取网站的相关配置，包括编码、抓取间隔、重试次数等
     */
    private Site site = Site.me().setRetryTimes(3).setSleepTime(100);

    /**
     * process是定制爬虫逻辑的核心接口，在这里编写抽取逻辑
     * @param page
     */
    @Override
    public void process(Page page) {


        //获取符合格式的所有图片，regex表示匹配规则，all表示匹配所有
        page.putField("imglist",page.getHtml().regex("http://sx02.img.diexun.com/adption/[\\S]*.jpg").all());

        System.out.println("page imglist size is : "+ page.getResultItems().get("imglist"));

/*        for (int i = 1; i <=36 ; i++) {

            System.out.println("get[" + i + "]"+
                    page.getHtml().xpath("//*[@id=\"ul-wrap-list\"]/li["+ i +"]/div/div[1]/div/a[3]/img"));

        }*/

//        if(!page.getUrl().regex("http://www.sxxl.com/VectorGallery-index-cid-6-channel-2085-sex-32940.html").match()){
//
//
//            page.addTargetRequests(page.getHtml().xpath("//*[@id=\"ul-wrap-list\"]/li[1]/div/div[1]/div/a[3]").all());
//            System.out.println("get==>"+page.getHtml().xpath("//*[@id=\"ul-wrap-list\"]/li[1]/div/div[1]/div/a[3]/img"));
//        }else {
//
//            System.out.println("------------else------------"+page.getHtml().xpath("//*[@id=\"ul-wrap-list\"]/li[1]/div/div[1]/div/a[3]/img"));
//        }

/*        page.addTargetRequests(page.getHtml().links().regex("(http://sx02.img.diexun.com/adption/2018_A/1227/2711/[\\S]*.jpg)").all());
        page.putField("url", page.getUrl().regex("http://sx02.img.diexun.com/adption/2018_A/1227/2711").toString());
        page.putField("img", page.getHtml().xpath("img").toString());
        if (page.getResultItems().get("name")==null){
            //skip this page
            page.setSkip(true);
        }
        page.putField("readme", page.getHtml().xpath("//div[@id='readme']/tidyText()"));*/
    }

    @Override
    public Site getSite() {
        return site;
    }

    public static void main(String[] args) {

        long startTime,endTime;
        System.out.println("开始爬取.....");
        startTime = System.currentTimeMillis();


        Spider.create(new GithubRepoPageProcessor()).addUrl("http://www.sxxl.com/VectorGallery-index-cid-6-channel-2085-sex-32940.html?&p=1").thread(2).run();
        endTime = System.currentTimeMillis();
        System.out.println("爬取结束,耗时约:"+ (endTime - startTime)/1000 + "秒");


    }
}
